//
//  UIAlertController+BCHelper.h
//  BCFoundation
//
//  Created by Basic on 2018/3/12.
//  UIAlertController 扩展

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIAlertController (BCHelper)

+ (void)bc_showAlertMessage:(NSString *)message;

//MARK: - alert 弹窗
/**
 显示alert，buttonList 不能为空
 @param title title description
 @param message message description
 @param actionBlock actionBlock description
 @param buttonList 需要显示的按钮数组
 */
+ (void)bc_showAlert:(NSString * _Nullable)title message:(NSString * _Nullable)message actionBlock:(void(^ _Nullable)(NSInteger bottonIndex) )actionBlock buttonList:(NSArray<NSString *> * _Nullable)buttonList;

/**
 显示alert
 @param title 标题
 @param message 消息内容
 @param actionBlock actionBlock description
 @param cancelBtnTitle cancelBtnTitle description
 @param otherBtnTitles otherBtnTitles description
 */
+ (void)bc_showAlert:(NSString * _Nullable)title message:(NSString * _Nullable)message actionBlock:(void(^ _Nullable)(NSInteger bottonIndex) )actionBlock cancelButtonTitle:(NSString * _Nullable)cancelBtnTitle otherButtonTitles:(NSString * _Nullable)otherBtnTitles, ...;

/**
 显示alert
 @param title 标题
 @param message 消息内容
 @param actionBlock 完成回调
 @param cancelBtnTitle cancelBtnTitle description
 @param otherBtnTitle otherBtnTitles description
 */
+ (void)bcs_showAlert:(NSString * _Nullable)title message:(NSString * _Nullable)message actionBlock:(void(^ _Nullable)(NSInteger bottonIndex) )actionBlock cancelButtonTitle:(NSString * _Nullable)cancelBtnTitle otherButtonTitles:(NSString * _Nullable)otherBtnTitle;


//MARK: - 显示输入框alert
/**
 （swift）显示输入框弹窗
 @param title 标题
 @param message 内容
 @param inputBlock 输入框配置回调
 @param actionBlock 完成u回调
 @param cancelBtnTitle 取消按钮标题
 @param otherBtnTitle 其他按钮标题
 */
+ (void)bcs_showInputAlert:(NSString *_Nullable)title message:(NSString *_Nullable)message inputBlock:(void(^_Nullable)(UITextField *textField) )inputBlock  actionBlock:(void(^_Nullable)(NSInteger bottonIndex,UIAlertController *alertController) )actionBlock cancelButtonTitle:(NSString *_Nullable)cancelBtnTitle otherButtonTitle:(NSString *_Nullable)otherBtnTitle;
/**
 显示输入框弹窗
 @param title 标题
 @param message 内容
 @param inputBlock 输入框配置回调
 @param actionBlock 完成回调
 @param cancelBtnTitle 取消按钮标题
 @param otherBtnTitles 其他按钮标题
 */
+ (void)bc_showInputAlert:(NSString * _Nullable)title message:(NSString * _Nullable)message inputBlock:(void(^ _Nullable)(UITextField *textField) )inputBlock  actionBlock:(void(^ _Nullable)(NSInteger bottonIndex,UIAlertController *alertController) )actionBlock cancelButtonTitle:(NSString * _Nullable)cancelBtnTitle otherButtonTitles:(NSString * _Nullable)otherBtnTitles, ...;

//MARK: - actionSheet 弹窗
/**
 显示actionSheet
 @param title 标题
 @param actionBlock 完成回调
 @param cancelBtnTitle cancelBtnTitle description
 @param otherBtnTitles otherBtnTitles description
 */
+ (void)bc_showActionSheet:(NSString * _Nullable)title actionBlock:(void(^ _Nullable)(NSInteger bottonIndex) )actionBlock cancelButtonTitle:(NSString * _Nullable)cancelBtnTitle otherButtonTitles:(NSString * _Nullable)otherBtnTitles, ...;
/**
 显示actionSheet
 @param title 标题
 @param actionBlock 完成回调
 @param cancelBtnTitle cancelBtnTitle description
 @param otherButtonList otherButtonList description
 */
+ (void)bc_showActionSheet:(NSString * _Nullable)title actionBlock:(void(^ _Nullable)(NSInteger bottonIndex) )actionBlock cancelButtonTitle:(NSString * _Nullable)cancelBtnTitle otherButtonList:(NSArray<NSString *>  * _Nullable)otherButtonList;

//MARK: - 关闭弹窗
/// 关掉 alert
+ (void)bc_dismissAlert;
@end

NS_ASSUME_NONNULL_END
